Crate cw_multi_test
source ·Expand description
Multitest is a design to simulate a blockchain environment in pure Rust. This allows us to run unit tests that involve contract -> contract, and contract -> bank interactions. This is not intended to be a full blockchain app but to simulate the Cosmos SDK x/wasm module close enough to gain confidence in multi-contract deployments before testing them on a live blockchain.
To understand the design of this module, please refer to ../DESIGN.md
Modules§
- MultiTest add-ons
Structs§
- Router is a persisted state. You can query this. Execution generally happens on the RouterCache, which then can be atomically committed or rolled back. We offer .execute() as a wrapper around cache, execute, commit/rollback process.
- Utility to build App in stages. When particular properties are not explicitly set, then default values are used.
- Contract data includes information about contract, equivalent of
ContractInfo
inwasmd
interface. - Wraps the exported functions from a contract and provides the normalized format Place T4 and E4 at the end, as we just want default placeholders for most contracts that don’t have sudo
- Default contract address generator used in WasmKeeper.
- Always accepting stargate mock implementation.
- Always failing stargate mock implementation.
Enums§
- We use it to allow calling into modules from another module in sudo mode. Things like gov proposals belong here.
Traits§
- Common address generator interface.
- An interface to call custom checksum generator for contract’s code.
- Interface to call into a
Contract
. - Module interface.
- Stargate interface.
- Interface to call into a
Wasm
module.
Functions§
- Creates new default
App
implementation working with customized exec and query messages. Outside ofApp
implementation to make type elision better. - No-op application initialization function.
Type Aliases§
- Type alias for default build
App
to make its storing simpler in typical scenario - This is essential to create a custom app with custom module.